package eva.savant.business.ventas.view

import eva.savant.businessobject.vt.Oficina
import eva.savant.businessobject.vt.Vendedor
import eva.savant.businessobject.vt.Gvendedor
import eva.savant.businessobject.vt.GvendedorVendedor

import javax.faces.bean.ManagedBean
import javax.faces.bean.SessionScoped
import javax.annotation.PostConstruct
import javax.faces.convert.Converter

@SessionScoped
@ManagedBean(name = 'IMGrupoVendedor')
public class IMGrupoVendedor extends eva.savant.core.view.Maestro {

  def vendedor

  def lsOficina, lsVendedor

  @PostConstruct
  public void cleanEntity() {

    vendedor= null

    entity= new Gvendedor(); init()

    entity.oficina= new Oficina()

    lsOficina= find(Oficina.class,'')

    lsVendedor= new ArrayList<Vendedor>()
  }

  public void editEntity(Object id) {

    entity= (Gvendedor) get(entity.class, id)


    lsVendedor= new ArrayList<Vendedor>()

    for(x in entity.lsGvendedorVendedor)

    lsVendedor.add(x.vendedor)
  }

  public boolean mergeEntity(Object entity) {

    entity= (Gvendedor) entity

    entity.lsGvendedorVendedor= new ArrayList()


    for(vendedor in lsVendedor)

    entity.lsGvendedorVendedor.add(new GvendedorVendedor(gvendedor: entity,
                                                         vendedor: vendedor,
                                                         operacionId: ALTA,
                                                         sociedadId: sociedad.id,
                                                         usuarioId: usuario.id))

    return merge(entity) != null
  }

  public void addVendedor() {

    delVendedor(vendedor.id)

    lsVendedor.add(vendedor)

    vendedor= null
  }

  public void delVendedor(Object id) {

    for(x in lsVendedor) if(x.id.equals(id)) lsVendedor.remove(x)
  }

  public List completeVendedor(String value) { return completeLike(Vendedor.class,'persona.nombre',value) }

  public Converter getConverterVendedor() { return converterLike(Vendedor.class) }

}
